import time

import pandas as pd

import PD.PdUtil
from 排序分公司 import order


def handler(df, batch):
    df = df.merge(oltinfo, left_on='olt_ip', right_on='管理IP')
    # df['分公司'] = df['分公司'].str.replace('\t', '', regex=False)
    # df['分公司'] = df['分公司'].str[:2]
    df = df.merge(alarm_class, on="alarm_name", how='left')
    df = df.groupby(['分公司', 'level'])['account'].nunique()
    df = df.unstack(fill_value=0)
    # 除第一列外，在列名前加上batch
    new_columns = [batch + col for col in df.columns]
    df.columns = new_columns
    df = order(df)
    return df


if __name__ == '__main__':
    alarm_class = pd.read_csv("C:\\Users\\11314\\Desktop\\alarm_class.csv", usecols=['alarm_name', 'level'])
    oltinfo = pd.read_csv("D:\\中断输入\\OLT业务表的配置查询结果.csv", usecols=['管理IP', '分公司'])
    df = handler(
        pd.read_csv("D:\\temp\\radius数据\\0401_0430\\去除企宽用户.csv", usecols=["olt_ip", "account", "alarm_name"]),
        "0401_0430").merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\5\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "5月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\6\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "6月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\7\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "7月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\8\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "8月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\9\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "9月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\10月\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "10月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\11月\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "11月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\1201_1231\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "12月"), on='分公司'
    ).merge(
        handler(pd.read_csv("D:\\temp\\radius数据\\0101_0131\\去除企宽用户.csv",
                            usecols=["olt_ip", "account", "alarm_name"]),
                "1月"), on='分公司'
    )
    PD.PdUtil.sort_head(df, ["OLT", "上联", "主干", "分支"], '分公司').to_excel("/temp/各分公司中断分类人数.xlsx")
